package client;

import interfaces.*;
import client.*;
import serveur.*;
import java.rmi.*;
import java.util.*;
import java.lang.*;
import java.rmi.server.UnicastRemoteObject;
import java.io.*;

public class TokenThread extends Thread implements TokenThreadITF, Serializable
{

	ClientITF sender;

	public TokenThread(ClientITF _sender) throws RemoteException
	{
		// L'élection sera déclenchée par ce client
		sender = _sender;
	}

	public void setClient(ClientITF client) throws RemoteException
	{
		sender = client;
	}

	public ClientITF getClient() throws RemoteException
	{
		return sender;
	}

	public void run()
	{
		try
		{
			System.out.println("-> Demande d'élection du client n°"+ sender.getID());
			election();
		}
		catch (RemoteException e) { System.out.println(e); }
	}
	
	// Méthode de lancement d'élection
	public void election() throws RemoteException
	{
		sender.lancerElection();
	}
}
